iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Software Development

Java基礎筆記系列 第 4

Java的三種等於

  • 分享至 

  • xImage
  •  

初學者對於Java的=等於,容易混淆,因為程式中所指的=跟從小到大所學的數學概念不同,以下簡述一個等於與兩個等於的差異,另外還有第三種等於,這三種意義是不同的唷。

Java的=是什麼?

= 是指定運算,又稱為賦值運算符號,將右側的值或結果,拋給左側的變數存起來,例如:
int age = 18; 意指age變數被賦值18
因此,Java的「一個=」,並不是數學的「等於」,而是「指定」的意思。

Java的==是什麼?

== 是關係運算子,用來檢查兩側的變數值是否相等,回傳布林值(成立回傳true or 不成立回傳false),因此,兩個等號==才是數學上所稱的等於,例如:
x == y ; 意指x等於y
x != y ; 意指x不等於y
※關係運算子除了有==(等於)、!=(不等於),另外也有>大於、<小於、<=小於等於、>=大於等於。

若是用在數據,檢查的是實際值;
若是用在對象,比較的是記憶體址。

Java的第三種等於equals()

字串String的比較不能使用==,如前述所示,比較的是值或其址,若要比較實際內容,就要使用equals()方法。
String的比較要用(s1.equals(s2));

public static void main(String args[]){
	String s1 = "Hi";
	String s2 = "Hi";
	String s3 = new String("hi");

System.out.pringln(s1==s2); //true,因為s1跟s2是相同址(同字串池物件)。
System.out.pringln(s1==s3); //false,因s3是new新址,故不相同。

System.out.println(s1.equals(s2)); //true,因為hi等同hi
System.out.println(s1.equals(s3)); //true,同上

上一篇
Java的兩種資料:常數與變數
下一篇
Java的傳值與傳址的值
系列文
Java基礎筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言